#include <linux/init.h>
#include <linux/module.h>
#include <linux/file.h>
#include <linux/fs.h>
#include <asm/uaccess.h>

MODULE_LICENSE("Dual BSD/GPL");

void file_test(void)
{
	struct file *fp;
	mm_segment_t oldmm;
	char buf[] = "Hello World \n";

	oldmm = get_fs();
	set_fs(KERNEL_DS);
	fp = filp_open("/tmp/file.test", O_RDWR | O_CREAT | O_TRUNC, 0644);
	fp->f_op->write(fp, buf, sizeof(buf), &(fp->f_pos));
	filp_close(fp, NULL);
	set_fs(oldmm);
}

static __init int test_init(void)
{
	printk(KERN_ERR "test init \n");
	file_test();
	return 0;
}

static __exit void test_exit(void)
{
	printk(KERN_ERR "test exit \n");
}

module_init(test_init);
module_exit(test_exit);

